// IniManager.cpp: implementation of the CIniManager class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h" 
#include "IniManager.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CIniManager::CIniManager()
{
	InitInfo();
}

CIniManager::~CIniManager()
{

}

CString CIniManager::GetIniValue(const CString strKey,CString strDefaultValue,TCHAR tcVAlue[],int iLength)
{
	GetPrivateProfileString(this->m_strGroup,strKey,strDefaultValue,tcVAlue,iLength,m_strIniPath);	
	return strDefaultValue=CString(tcVAlue);
}

CString CIniManager::GetIniValue(const CString strKey,CString strDefaultValue)
{
	CString strResult=_T("0"); 
 	GetPrivateProfileString(this->m_strGroup,strKey,strDefaultValue,strResult.GetBuffer(255),255,m_strIniPath);
	strDefaultValue=strResult;
	strResult.ReleaseBuffer();
	return strDefaultValue;
}

LONG CIniManager::GetIniValueLong(const CString strKey,CString strDefaultValue)
{
	CString strResult=_T("0"); 
	GetPrivateProfileString(this->m_strGroup,strKey,strDefaultValue,strResult.GetBuffer(255),255,m_strIniPath);
	strDefaultValue=strResult;
	if(strDefaultValue.IsEmpty())
		strDefaultValue=_T("-1");
	strResult.ReleaseBuffer();
	return _ttol(strDefaultValue);
}

BOOL CIniManager::SetIniValue(const CString strKey,const CString strValue)
{
	return WritePrivateProfileString(m_strGroup, strKey, strValue, m_strIniPath); 
}

void CIniManager::InitInfo(CString strFileName/*=_T("")*/)
{
	CString strtemf=_T("");
	CString strModulePath=_T("");
	GetModuleFileName(NULL,strModulePath.GetBuffer(MAX_PATH),MAX_PATH);
	strModulePath.ReleaseBuffer();
	strModulePath = strModulePath.Left(strModulePath.ReverseFind(_T('\\'))+1);
	strModulePath+=_T("Config\\");
	CreateDirectory(strModulePath,NULL);
	if(strFileName.IsEmpty())
		strtemf.Format(_T("%s"),strModulePath+_T("GameParams.ini"));
	else
		strtemf.Format(_T("%s"),strModulePath+strFileName);
	m_strIniPath=strtemf;
}

void CIniManager::SetGroupName(CString strGroupName)
{
	m_strGroup=strGroupName;
}
